package org.dxy.api.dto.request.productionLine;

import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;
import lombok.Data;

/**
 * @ description:
 * @ author: dxy
 * @ createTime: 2025/7/20 19:10
 */

@Data
public class CreateProductionLineRequestDto {
    /**
     * 产线编码，唯一标识产线（必填）
     */
    @NotBlank(message = "产线编码不能为空")
    @Size(max = 50, message = "产线编码长度不能超过50个字符")
    private String lineCode;

    /**
     * 产线名称，用于显示和描述（必填）
     */
    @NotBlank(message = "产线名称不能为空")
    @Size(max = 100, message = "产线名称长度不能超过100个字符")
    private String lineName;

    /**
     * 所属工厂ID（必填）
     */
    @NotNull(message = "所属工厂不能为空")
    private Long factoryId;

    /**
     * 所属车间ID（必填）
     */
    @NotNull(message = "所属车间不能为空")
    private Long workshopId;

    /**
     * 产线类型，例如 "ASSEMBLY"（装配线）、"TESTING"（测试线）（必填）
     */
    @NotBlank(message = "产线类型不能为空")
    @Size(max = 50, message = "产线类型长度不能超过50个字符")
    private String lineType;


    /**
     * 最大设备容量，限制产线可分配的设备数量（可选）
     */
    private Integer maxDeviceCapacity;


    /**
     * 产线描述，记录产线的用途或备注（可选）
     */
    @Size(max = 500, message = "产线描述长度不能超过500个字符")
    private String description;
}